home *** CD-ROM | disk | FTP | other *** search
Wrap
nnnneeeettttddddiiiirrrr((((3333NNNN)))) nnnneeeettttddddiiiirrrr((((3333NNNN)))) NNNNAAAAMMMMEEEE _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee, _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_aaaa_dddd_dddd_rrrr, _nnnn_eeee_tttt_dddd_iiii_rrrr______ffff_rrrr_eeee_eeee, _nnnn_eeee_tttt_dddd_iiii_rrrr______mmmm_eeee_rrrr_gggg_eeee_aaaa_dddd_dddd_rrrr, _tttt_aaaa_dddd_dddd_rrrr_2222_uuuu_aaaa_dddd_dddd_rrrr, _uuuu_aaaa_dddd_dddd_rrrr_2222_tttt_aaaa_dddd_dddd_rrrr, _nnnn_eeee_tttt_dddd_iiii_rrrr______pppp_eeee_rrrr_rrrr_oooo_rrrr, _nnnn_eeee_tttt_dddd_iiii_rrrr______ssss_pppp_eeee_rrrr_rrrr_oooo_rrrr - generic transport name-to-address translation SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_nnnn_eeee_tttt_dddd_iiii_rrrr_...._hhhh_>>>> _iiii_nnnn_tttt _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv _****_ssss_eeee_rrrr_vvvv_iiii_cccc_eeee_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_dddd______aaaa_dddd_dddd_rrrr_llll_iiii_ssss_tttt _****_aaaa_dddd_dddd_rrrr_ssss_))))_;;;; _iiii_nnnn_tttt _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_aaaa_dddd_dddd_rrrr_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv_llll_iiii_ssss_tttt _****_****_ssss_eeee_rrrr_vvvv_iiii_cccc_eeee_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_bbbb_uuuu_ffff _****_nnnn_eeee_tttt_aaaa_dddd_dddd_rrrr_))))_;;;; _vvvv_oooo_iiii_dddd _nnnn_eeee_tttt_dddd_iiii_rrrr______ffff_rrrr_eeee_eeee_((((_vvvv_oooo_iiii_dddd _****_pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _iiii_dddd_eeee_nnnn_tttt_))))_;;;; _iiii_nnnn_tttt _nnnn_eeee_tttt_dddd_iiii_rrrr______mmmm_eeee_rrrr_gggg_eeee_aaaa_dddd_dddd_rrrr_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _cccc_hhhh_aaaa_rrrr _****_mmmm_rrrr_gggg______uuuu_aaaa_dddd_dddd_rrrr_,,,, _cccc_hhhh_aaaa_rrrr _****_ssss______uuuu_aaaa_dddd_dddd_rrrr_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc______uuuu_aaaa_dddd_dddd_rrrr_))))_;;;; _cccc_hhhh_aaaa_rrrr _****_tttt_aaaa_dddd_dddd_rrrr_2222_uuuu_aaaa_dddd_dddd_rrrr_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_bbbb_uuuu_ffff _****_aaaa_dddd_dddd_rrrr_))))_;;;; _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_bbbb_uuuu_ffff _****_uuuu_aaaa_dddd_dddd_rrrr_2222_tttt_aaaa_dddd_dddd_rrrr_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _cccc_hhhh_aaaa_rrrr _****_uuuu_aaaa_dddd_dddd_rrrr_))))_;;;; _iiii_nnnn_tttt _nnnn_eeee_tttt_dddd_iiii_rrrr______oooo_pppp_tttt_iiii_oooo_nnnn_ssss_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg _****_nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg_,,,, _iiii_nnnn_tttt _oooo_pppp_tttt_iiii_oooo_nnnn_,,,, _iiii_nnnn_tttt _ffff_dddd_,,,, _cccc_hhhh_aaaa_rrrr _****_pppp_oooo_iiii_nnnn_tttt_eeee_rrrr______tttt_oooo______aaaa_rrrr_gggg_ssss_))))_;;;; _vvvv_oooo_iiii_dddd _nnnn_eeee_tttt_dddd_iiii_rrrr______pppp_eeee_rrrr_rrrr_oooo_rrrr_((((_cccc_hhhh_aaaa_rrrr _****_ssss_))))_;;;; _cccc_hhhh_aaaa_rrrr _****_nnnn_eeee_tttt_dddd_iiii_rrrr______ssss_pppp_eeee_rrrr_rrrr_oooo_rrrr_((((_vvvv_oooo_iiii_dddd_))))_;;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines provide a generic interface for name-to-address mapping that will work with a all transport protocols. This interface provides a generic way for programs to convert transport specific addresses into common structures and back again. The _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee routine maps the machine name and service name in the _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv structure to a collection of addresses of the type understood by the transport identified in the _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg structure. This routine returns all addresses that are valid for that transport in the _nnnn_dddd______aaaa_dddd_dddd_rrrr_llll_iiii_ssss_tttt structure. The _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg structure is described on the _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg(4) manual page. The _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv and _nnnn_dddd______aaaa_dddd_dddd_rrrr_llll_iiii_ssss_tttt structures have the following elements. _nnnn_dddd______aaaa_dddd_dddd_rrrr_llll_iiii_ssss_tttt structure: _iiii_nnnn_tttt _nnnn______cccc_nnnn_tttt_;;;; _////_**** _nnnn_uuuu_mmmm_bbbb_eeee_rrrr _oooo_ffff _nnnn_eeee_tttt_bbbb_uuuu_ffff_ssss _****_//// _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_eeee_tttt_bbbb_uuuu_ffff _****_nnnn______aaaa_dddd_dddd_rrrr_ssss_;;;; _////_**** _tttt_hhhh_eeee _nnnn_eeee_tttt_bbbb_uuuu_ffff_ssss _****_//// _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv structure: _cccc_hhhh_aaaa_rrrr _****_hhhh______hhhh_oooo_ssss_tttt_;;;; _////_**** _tttt_hhhh_eeee _hhhh_oooo_ssss_tttt _nnnn_aaaa_mmmm_eeee _****_//// _cccc_hhhh_aaaa_rrrr _****_hhhh______ssss_eeee_rrrr_vvvv_;;;; _////_**** _tttt_hhhh_eeee _ssss_eeee_rrrr_vvvv_iiii_cccc_eeee _nnnn_aaaa_mmmm_eeee _****_//// PPPPaaaaggggeeee 1111 nnnneeeettttddddiiiirrrr((((3333NNNN)))) nnnneeeettttddddiiiirrrr((((3333NNNN)))) _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee accepts some special-case host names. These host names are hints to the underlying mapping routines that define the intent of the request. This information is required for some transport provider developers to provide the correct information back to the caller. The host names are defined in _nnnn_eeee_tttt_dddd_iiii_rrrr_...._hhhh. The currently defined host names are: _HHHH_OOOO_SSSS_TTTT______SSSS_EEEE_LLLL_FFFF Represents the address to which local programs will bind their endpoints. _HHHH_OOOO_SSSS_TTTT______SSSS_EEEE_LLLL_FFFF differs from the host name provided by _gggg_eeee_tttt_hhhh_oooo_ssss_tttt_nnnn_aaaa_mmmm_eeee(), which represents the address to which _r_e_m_o_t_e programs will bind their endpoints. _HHHH_OOOO_SSSS_TTTT______AAAA_NNNN_YYYY Represents any host accessible by this transport provider. _HHHH_OOOO_SSSS_TTTT______AAAA_NNNN_YYYY allows applications to specify a required service without specifying a particular host name. _HHHH_OOOO_SSSS_TTTT______BBBB_RRRR_OOOO_AAAA_DDDD_CCCC_AAAA_SSSS_TTTT Represents the address for all hosts accessible by this transport provider. Network requests to this address will be received by all machines. All fields of the _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv structure must be initialized. To find all available transports, call the _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee routine with each _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg structure returned by the _gggg_eeee_tttt_nnnn_eeee_tttt_pppp_aaaa_tttt_hhhh call. The _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_aaaa_dddd_dddd_rrrr routine maps addresses to service names. This routine returns a list of host and service pairs that would yield this address. If more than one tuple of host and service name is returned then the first tuple contains the preferred host and service names. The _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv_llll_iiii_ssss_tttt structure contains the following members: _iiii_nnnn_tttt _hhhh______cccc_nnnn_tttt_;;;; _////_**** _tttt_hhhh_eeee _nnnn_uuuu_mmmm_bbbb_eeee_rrrr _oooo_ffff _nnnn_dddd______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv_ssss _****_//// _ssss_tttt_rrrr_uuuu_cccc_tttt _hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv _****_hhhh______hhhh_oooo_ssss_tttt_ssss_eeee_rrrr_vvvv_ssss_;;;; _////_**** _tttt_hhhh_eeee _eeee_nnnn_tttt_rrrr_iiii_eeee_ssss _****_//// The _nnnn_eeee_tttt_dddd_iiii_rrrr______ffff_rrrr_eeee_eeee structure is used to free the structures allocated by the name to address translation routines. The _nnnn_eeee_tttt_dddd_iiii_rrrr______mmmm_eeee_rrrr_gggg_eeee_aaaa_dddd_dddd_rrrr routine is used by a network service to return an optimized network addresses to a client. This routine takes the universal address of the endpoint that the service has bound to, which is pointed to by the _s__u_a_d_d_r parameter, and the address of the endpoint that a request came in on, which is pointed to by the _c__u_a_d_d_r parameter, to create an optimized address for communication with the service. The service address should be an address returned by the _nnnn_eeee_tttt_dddd_iiii_rrrr______gggg_eeee_tttt_bbbb_yyyy_nnnn_aaaa_mmmm_eeee call, specified with the special host name _HHHH_OOOO_SSSS_TTTT______SSSS_EEEE_LLLL_FFFF. The _tttt_aaaa_dddd_dddd_rrrr_2222_uuuu_aaaa_dddd_dddd_rrrr and _uuuu_aaaa_dddd_dddd_rrrr_2222_tttt_aaaa_dddd_dddd_rrrr routines support translation between universal addresses and TLI type netbufs. They take and return character string pointers. The _tttt_aaaa_dddd_dddd_rrrr_2222_uuuu_aaaa_dddd_dddd_rrrr routine returns a pointer to a string that contains the universal address and returns _NNNN_UUUU_LLLL_LLLL if the conversion is not possible. This is not a fatal condition as some transports may not support a universal address form. PPPPaaaaggggeeee 2222 nnnneeeettttddddiiiirrrr((((3333NNNN)))) nnnneeeettttddddiiiirrrr((((3333NNNN)))) _o_p_t_i_o_n, _f_d, and _p_o_i_n_t_e_r__t_o__a_r_g_s are passed to the _nnnn_eeee_tttt_dddd_iiii_rrrr______oooo_pppp_tttt_iiii_oooo_nnnn_ssss routine for the transport specified in _nnnn_eeee_tttt_cccc_oooo_nnnn_ffff_iiii_gggg_pppp. There are four values for _o_p_t_i_o_n: _NNNN_DDDD______SSSS_EEEE_TTTT______BBBB_RRRR_OOOO_AAAA_DDDD_CCCC_AAAA_SSSS_TTTT _NNNN_DDDD______SSSS_EEEE_TTTT______RRRR_EEEE_SSSS_EEEE_RRRR_VVVV_EEEE_DDDD_PPPP_OOOO_RRRR_TTTT _NNNN_DDDD______CCCC_HHHH_EEEE_CCCC_KKKK______RRRR_EEEE_SSSS_EEEE_RRRR_VVVV_EEEE_DDDD_PPPP_OOOO_RRRR_TTTT _NNNN_DDDD______MMMM_EEEE_RRRR_GGGG_EEEE_AAAA_DDDD_DDDD_RRRR If a transport provider does not support an option, _nnnn_eeee_tttt_dddd_iiii_rrrr______oooo_pppp_tttt_iiii_oooo_nnnn_ssss returns _----_1111 and sets ______nnnn_dddd_eeee_rrrr_rrrr_oooo_rrrr to _NNNN_DDDD______NNNN_OOOO_CCCC_TTTT_RRRR_LLLL. The specific actions of each option follow. _NNNN_DDDD______SSSS_EEEE_TTTT______BBBB_RRRR_OOOO_AAAA_DDDD_CCCC_AAAA_SSSS_TTTT Sets the transport provider up to allow broadcast, if the transport supports broadcast. _f_d is a file descriptor into the transport (that is, the result of a _tttt______oooo_pppp_eeee_nnnn of _////_dddd_eeee_vvvv_////_uuuu_dddd_pppp). _p_o_i_n_t_e_r__t_o__a_r_g_s is not used. If this completes, broadcast operations may be performed on file descriptor _f_d. _NNNN_DDDD______SSSS_EEEE_TTTT______RRRR_EEEE_SSSS_EEEE_RRRR_VVVV_EEEE_DDDD_PPPP_OOOO_RRRR_TTTT Allows the application to bind to a reserved port, if that concept exists for the transport provider. _f_d is a file descriptor into the transport (it must not be bound to an address). If _p_o_i_n_t_e_r__t_o__a_r_g_s is _NNNN_UUUU_LLLL_LLLL, _f_d will be bound to a reserved port. If _p_o_i_n_t_e_r__t_o__a_r_g_s is a pointer to a _nnnn_eeee_tttt_bbbb_uuuu_ffff structure, an attempt will be made to bind to a reserved port on the specified address. _NNNN_DDDD______CCCC_HHHH_EEEE_CCCC_KKKK______RRRR_EEEE_SSSS_EEEE_RRRR_VVVV_EEEE_DDDD_PPPP_OOOO_RRRR_TTTT Used to verify that an address corresponds to a reserved port, if that concept exists for the transport provider. _f_d is not used. _p_o_i_n_t_e_r__t_o__a_r_g_s is a pointer to a _nnnn_eeee_tttt_bbbb_uuuu_ffff structure that contains an address. This option returns _0000 only if the address specified in _p_o_i_n_t_e_r__t_o__a_r_g_s is reserved. _NNNN_DDDD______MMMM_EEEE_RRRR_GGGG_EEEE_AAAA_DDDD_DDDD_RRRR Used to take a ``local address'' (like the _0000_...._0000_...._0000_...._0000 address that TCP uses) and return a ``real address'' that client machines can connect to. _f_d is not used. _p_o_i_n_t_e_r__t_o__a_r_g_s is a pointer to a _ssss_tttt_rrrr_uuuu_cccc_tttt _nnnn_dddd______mmmm_eeee_rrrr_gggg_eeee_aaaa_rrrr_gggg, which has the following members: _cccc_hhhh_aaaa_rrrr _****_ssss______uuuu_aaaa_dddd_dddd_rrrr_;;;; _////_**** _ssss_eeee_rrrr_vvvv_eeee_rrrr_''''_ssss _uuuu_nnnn_iiii_vvvv_eeee_rrrr_ssss_aaaa_llll _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_//// _cccc_hhhh_aaaa_rrrr _****_cccc______uuuu_aaaa_dddd_dddd_rrrr_;;;; _////_**** _cccc_llll_iiii_eeee_nnnn_tttt_''''_ssss _uuuu_nnnn_iiii_vvvv_eeee_rrrr_ssss_aaaa_llll _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_//// _cccc_hhhh_aaaa_rrrr _****_mmmm______uuuu_aaaa_dddd_dddd_rrrr_;;;; _////_**** _mmmm_eeee_rrrr_gggg_eeee_dddd _uuuu_nnnn_iiii_vvvv_eeee_rrrr_ssss_aaaa_llll _aaaa_dddd_dddd_rrrr_eeee_ssss_ssss _****_//// _ssss______uuuu_aaaa_dddd_dddd_rrrr is something like _0000_...._0000_...._0000_...._0000_...._1111_...._1111_2222, and, if the call is successful, _mmmm______uuuu_aaaa_dddd_dddd_rrrr will be set to something like _1111_9999_2222_...._1111_1111_...._1111_0000_9999_...._8888_9999_...._1111_...._1111_2222. For most transports, _mmmm______uuuu_aaaa_dddd_dddd_rrrr is exactly what _ssss______uuuu_aaaa_dddd_dddd_rrrr is. PPPPaaaaggggeeee 3333 nnnneeeettttddddiiiirrrr((((3333NNNN)))) nnnneeeettttddddiiiirrrr((((3333NNNN)))) The _nnnn_eeee_tttt_dddd_iiii_rrrr______pppp_eeee_rrrr_rrrr_oooo_rrrr() routine prints an error message on the standard output stating why one of the name-to-address mapping routines failed. The error message is preceded by the string given as an argument. The _nnnn_eeee_tttt_dddd_iiii_rrrr______ssss_pppp_eeee_rrrr_rrrr_oooo_rrrr routine returns a string containing an error message stating why one of the name-to-address mapping routines failed. SSSSEEEEEEEE AAAALLLLSSSSOOOO _gggg_eeee_tttt_nnnn_eeee_tttt_pppp_aaaa_tttt_hhhh(3N) PPPPaaaaggggeeee 4444